import type { basicInfoRT } from '@/types/my'
import { defineStore } from 'pinia'

// user
export const useUserStore = defineStore('user',
  {
    state: () => ({
      basicInfo: <basicInfoRT>{},
    }),
    getters: {

    },
    actions: {

    },
    // true 现在，你的整个 Store 将使用默认持久化配置保存。
    // persist: true,
    // 不想使用默认配置 使用 localStorage 进行存储等
    persist: {
      // https://prazdevs.github.io/pinia-plugin-persistedstate/zh/guide/config.html
      // key 类型：string 默认值：store.$id
      // storage 类型：StorageLike 默认值：localStorage
      storage: {
        getItem(key) {
          return uni.getStorageSync(key)
        },
        setItem(key, value) {
          uni.setStorageSync(key, value)
        },
      },
      // paths 类型：string[] 默认值：undefined 用于指定 state 中哪些数据需要被持久化。[] 表示不持久化任何状态，undefined 或 null 表示持久化整个 state。 
      // serializer 该配置能够指定持久化时所使用的序列化方法，以及恢复 Store 时的反序列化方法
      // beforeRestore 用于在恢复数据之前强制地执行特定的操作 例子：该 Store 将会在恢复数据之前输出 即将恢复 'store'
      // afterRestore 用于在恢复数据之后强制地执行特定的操作
      // debug 当设置为 true 时，持久化/恢复 Store 时可能发生的任何错误都将使用 console.error 输出。
    }
  }
)